home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 October / Chip_2002-10_cd1.bin / oddech / karel / karol.exe / {app} / Priklady / 12bludisko.kpp < prev    next >
Text File  |  2001-05-08  |  3KB  |  139 lines

  1. {
  2. program prejde bludiskom a zastane v cieli,
  3. teda pri stplceku zo 4 tehiel.
  4. ak sa k cielu neda dostat, karol sa vrati na
  5. zaciatok.
  6.  
  7. POUZITE:
  8.   vlastne prikazy
  9.   vlastne podmienky (aj vnorene)
  10.   podmienka tehla s parametrom (aj je tehla(4) tak...)
  11.   rekurzia
  12.   rychlo / pomaly
  13.   prikaz skonci
  14.   cakaj
  15.   pip
  16. }
  17.  
  18. {KAROL SA OTOCI O 180 STUPNOV}
  19. prikaz celomvzad
  20.   vlavo
  21.   vlavo
  22. *prikaz
  23.  
  24. {KAROL UROBI KROK DOZADU}
  25. prikaz krokvzad
  26.   celomvzad
  27.   krok
  28.   celomvzad
  29. *prikaz
  30.  
  31. {
  32. *******************************************************
  33. **       podmienka vrati pravdu, ak je volno,        **
  34. **     nie su pred karolom znacky a ani dve tehly      **
  35. *******************************************************
  36. }
  37. podmienka mozno_ist
  38.  
  39.     {
  40.     LOKALNA PODMIENKA, VRATI PRAVDU AK JE KROK
  41.     PRED KAROLOM ZNACKA
  42.     }
  43.     podmienka vpredu_znacka
  44.       krok
  45.       ak je znacka tak
  46.           pravda
  47.       inak
  48.           nepravda
  49.       *ak
  50.       krokvzad
  51.     *podmienka
  52.     
  53. // telo podmienky mozno ist
  54. nepravda
  55. ak je volno tak
  56.   ak nie je vpredu_znacka tak
  57.     ak je tehla(2) tak
  58.       nepravda
  59.     inak
  60.       pravda
  61.       ak je tehla(4) tak nepravda *ak
  62.     *ak
  63.   *ak
  64. *ak
  65. *podmienka
  66.  
  67. {
  68. ********************************************************
  69. **         VRATI PRAVDA, AK OKOLO KARLA JE CIEL       **
  70. **                (4 TEHLY NA SEBE)                   **
  71. ********************************************************
  72. }
  73. podmienka ciel
  74.   nepravda
  75.   opakuj 4 krat
  76.     ak je tehla(4) tak
  77.       pravda
  78.     *ak
  79.     vlavo
  80.   *opakuj
  81. *podmienka
  82.  
  83. {
  84. ********************************************************
  85. ** PRIKAZ, KTORY SA VOLA REKURZIVNE A PRECHADZA       **
  86. ** POSTUPNE VSETKY CHODBY                             **
  87. ********************************************************
  88. }
  89.  
  90. prikaz prejdi_vetvu
  91.  
  92.   // prehlada vsetky mozne cesticky...
  93.   oznac
  94.   opakuj 4 krat
  95.     vlavo
  96.     ak je mozno_ist tak
  97.         krok
  98.         rychlo
  99.         prejdi_vetvu
  100.         { zistim, ci som v cieli,
  101.         inak sa vratim  }
  102.         ak je ciel tak
  103.           { teraz karol pocka 2,5 sekundy,
  104.             pipne, natoci sa k cielu,
  105.             a potom ukonci program }
  106.           cakaj(2500);
  107.           pip;
  108.           kym nie je tehla(4) rob vlavo *kym
  109.           krok
  110.           pomaly
  111.           // skoncime
  112.           skonci // preddefinovany prikaz, ukonci beh programu
  113.         inak
  114.           // vratim sa
  115.           krokvzad
  116.           rychlo
  117.         *ak
  118.     *ak
  119.   *opakuj
  120.   
  121.  
  122. *prikaz
  123. {
  124. ********************************************************
  125. ***************** TELO PROGRAMU ************************
  126. ********************************************************
  127. }
  128. rychlo
  129. prejdi_vetvu
  130. {
  131. sem sa karol dostane, len ak sa k cielu
  132. neda dostat
  133. }
  134. opakuj 2 krat
  135.   pip
  136.   cakaj(2000)
  137. *opakuj
  138.  
  139.